package k1_exercise;

import java.util.Arrays;
import java.util.Scanner;

public class Array_exercise_eighth_delete {
    /**
     * 完整版的删除数组中的元素
     */
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        //初始化实际元素的个数
        int size = 0;

        //创建一个长度为10的数组
        int[] nums = new int[10];

        //输入初始的五个数字
        for (int i = 0; i < nums.length; i++) {
            System.out.println("请输入第"+(i+1)+"个数字：");
            nums[i] = scanner.nextInt();
            size++;
        }

        System.out.println(Arrays.toString(nums));

        /**
         * 可以正常删除的条件
         *     1.能删除的索引位置范围为：0-size(不包含)
         *     2.size大于0
         */
        while(true){

            //实现从指定位置删除元素的功能
            System.out.println("请输入要删除的索引位置：");
            int deleteIndex = scanner.nextInt();

            //能删除的索引位置范围为：0-size(不包含)
            if(deleteIndex>=0 && deleteIndex<size || size==0){
                //保证有元素才可以删除
                if(size>0){
                    //从要删除的位置开始到数组的最后，依次向前一位替换元素
                    for (int i = deleteIndex+1; i < size; i++) {
                        nums[i-1] = nums[i];
                    }
                    //for循环中对于最后一个有效元素没有置为初始值，所以通过size的形式对最后一个有效数字直接赋值为初始值
                    nums[--size] = 0;
                    System.out.println(Arrays.toString(nums));
                }else{
                    System.out.println("数组为空，无法删除");
                    break;
                }
            }else{
                System.out.println("共有"+size+"个元素，无法删除第"+deleteIndex+"个元素，请重新输入");
            }
        }
    }
}
